package br.net.atasacramental.atividade.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Formula;
import org.hibernate.annotations.GenericGenerator;

@Entity
@Table(name = "EVENTO")
public class Evento {

	@Id
	@GenericGenerator(name = "seq_evento", strategy = "increment")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_evento")
	@Column(name = "ID_EVENTO")
	private int idEvento;
	@Column(name = "DESCRICAO")
	private String descricao;
	@Column(name = "DETALHES")
	private String detalhes;
	@Column(name = "MOMENTO")
	private Date momento;
	@Column(name = "HORA")
	private String hora;
	@Column(name = "LOCAL")
	private String local;
	@Column(name = "ID_RESPONSAVEL")
	private int idResponsavel;
	@Column(name = "ORCAMENTO")
	private Integer orcamento;
	@Column(name = "PUBLICO_ALVO")
	private String publicoAlvo;
	@Column(name = "PROPOSITO")
	private String proposito;
	@Column(name = "ID_STATUS")
	private int idStatus = EventoStatus.ELABORADA;
	@Column(name = "ID_ORGANIZACAO")
	private int idOrganizacao;
	@Column(name = "DS_OBSERVACAO")
	private String dsObservacao;
	@Column(name = "VESTUARIO")
	private String vestuario;
	@Column(name="ID_TRIMESTRE")
	private int idTrimestre;
	@Formula("(select IFNULL(m.NOME,'') from MEMBRO m where m.ID_MEMBRO = ID_RESPONSAVEL)")
	private String nmResponsavel;
	@Formula("(select IFNULL(o.DESCRICAO,'') from ORGANIZACAO o where o.ID_ORGANIZACAO = ID_ORGANIZACAO)")
	private String dsOrganizacao;

	// campo fake editavel
	@Transient
	private String snEditavel = "N";
	public int getIdOrganizacao() {
		return idOrganizacao;
	}

	public void setIdOrganizacao(int idOrganizacao) {
		this.idOrganizacao = idOrganizacao;
	}

	public Evento() {
	}

	public Evento(int idEvento, String descricao, Date momento,
			int idResponsavel, int idStatus) {
		this.idEvento = idEvento;
		this.descricao = descricao;
		this.momento = momento;
		this.idResponsavel = idResponsavel;
		this.idStatus = idStatus;
	}

	public int getIdEvento() {
		return this.idEvento;
	}

	public void setIdEvento(int idEvento) {
		this.idEvento = idEvento;
	}

	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getDetalhes() {
		return this.detalhes;
	}

	public void setDetalhes(String detalhes) {
		this.detalhes = detalhes;
	}

	public Date getMomento() {
		return this.momento;
	}

	public void setMomento(Date momento) {
		this.momento = momento;
	}

	public String getHora() {
		return this.hora;
	}

	public void setHora(String hora) {
		this.hora = hora;
	}

	public int getIdResponsavel() {
		return this.idResponsavel;
	}

	public void setIdResponsavel(int idResponsavel) {
		this.idResponsavel = idResponsavel;
	}

	public Integer getOrcamento() {
		return this.orcamento;
	}

	public void setOrcamento(Integer orcamento) {
		this.orcamento = orcamento;
	}

	public String getProposito() {
		return this.proposito;
	}

	public String getPublicoAlvo() {
		return publicoAlvo;
	}

	public void setPublicoAlvo(String publicoAlvo) {
		this.publicoAlvo = publicoAlvo;
	}

	public void setProposito(String proposito) {
		this.proposito = proposito;
	}

	public int getIdStatus() {
		return this.idStatus;
	}

	public void setIdStatus(int idStatus) {
		this.idStatus = idStatus;
	}

	public String getLocal() {
		return local;
	}

	public void setLocal(String local) {
		this.local = local;
	}
	public String getDsObservacao() {
		return dsObservacao;
	}

	public void setDsObservacao(String dsObservacao) {
		this.dsObservacao = dsObservacao;
	}	
	public String getVestuario() {
		return vestuario;
	}

	public void setVestuario(String vestuario) {
		this.vestuario = vestuario;
	}

	public String getNmResponsavel() {
		return nmResponsavel;
	}

	public void setNmResponsavel(String nmResponsavel) {
		this.nmResponsavel = nmResponsavel;
	}

	public int getIdTrimestre() {
		return idTrimestre;
	}

	public void setIdTrimestre(int idTrimestre) {
		this.idTrimestre = idTrimestre;
	}

	public String getDsOrganizacao() {
		return dsOrganizacao;
	}
	public void setDsOrganizacao(String dsOrganizacao) {
		this.dsOrganizacao = dsOrganizacao;
	}

	public String getSnEditavel() {
		return snEditavel;
	}

	public void setSnEditavel(String snEditavel) {
		this.snEditavel = snEditavel;
	}	
	
}